home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tex / macros / source / contrib / deleq / deleq.dtx (.txt) < prev    next >
LaTeX Document  |  1995-03-09  |  27KB  |  596 lines

  1. %  \iffalse  
  2. %    The first part is a comment to the reader(s) of `deleq.dtx'.
  3. %  deleq.dtx    Version 4.1, Dec. 27, 1994
  4. %  (c) 1994 by Mats Dahlgren  (matsd@physchem.kth.se)
  5. %  Please see the information in file `deleq.ins' on how you 
  6. %  may use and (re-)distribute this file.  Run LaTeX on the file 
  7. %  `deleq.ins' to get a .sty-file, instructions, and an example.
  8. %  This file may NOT be distributed if not accompanied by 'deleq.ins'.
  9. %  \fi
  10. %  \def\filename{deleq.dtx}
  11. %  \def\fileversion{4.1}
  12. %  \def\filedate{1994/12/27}\def\docdate{\filedate}
  13. %  \MakeShortVerb{\|}
  14. %  \title{\LaTeX{} Macro for Partial Numbering of Equations}
  15. %  \author{Mats Dahlgren\\ (\texttt{matsd@physchem.kth.se})} 
  16. %  \maketitle
  17. %  \begin{abstract}
  18. %  To enable a more flexible equation numbering, especially 
  19. %  ``partial'' equation numbers (`3a', `3b' \textit{etc.}), 
  20. %  the |deleq| package has been developed.  It can produce 
  21. %  partial equation numbers intermixed with ordinary 
  22. %  equation numbers also in an |eqnarray|-like environment, 
  23. %  the intermixing can occur within one environment.  The 
  24. %  package also provides commands for putting commentatory 
  25. %  text in an |eqnarray| environment without requiering the 
  26. %  |amstex| package.\\ \small This file and the package:\
  27. %  Copyright \copyright\ 1994 by Mats Dahlgren.  All rights
  28. %  reserved. 
  29. %  \end{abstract}
  30. %  \section{Introduction}
  31. %  |deleq| is a \LaTeX{} package which makes partial
  32. %  numbering of equations possible.  It is meant to be used
  33. %  when numbering such as 3a, 3b, \textit{etc.} is desired.
  34. %  The default is to give an equation number like `3a'
  35. %  without period and with the `a' typeset in roman font. 
  36. %  It can be used in |article| as well as |book| and
  37. %  |report| document classes.  The examples given below are
  38. %  valid for the |article| class.  |deleq| is fully
  39. %  compatible with the |leqno| documentclass option.
  40. %  Equations can be numbered either 3, 3a, 3b, $\ldots$, or
  41. %  2, 3a, 3b, $\ldots$. Also, equation numbers within
  42. %  |eqnarray|-like environments can be numbered 3, 3a, 3b,
  43. %  $\ldots$ or starting at 3a, which can follow both after
  44. %  equation 2b or 3.  An |eqnarray|-like environment can have 
  45. %  its first equation numbered 3b if the nearest previous
  46. %  equation is 3a.  Within one |eqnarray|-like  environment, 
  47. %  equations can be numbered 3a, 3b, 4, 4a, 4b, 5a, 5b,
  48. %  \textit{etc.}, and also not numbered lines are possible
  49. %  (`|\nonumber|' works). Furthermore, equation numbers can
  50. %  be ``recycled''.  If equation 3 is repeated after
  51. %  equation 8, it can still have the numbering set to 3,
  52. %  and be followed by (a new) equation 9.  ``Recycled''
  53. %  equation numbers can receive partial numbers (3a, 3b,
  54. %  $\ldots$); partially numbered equations can also be
  55. %  ``recycled'' (but at this stage, the latter can not
  56. %  receive new partial numbers neatly, it will come out
  57. %  like `3ba' if eqution 3b is the ``recycled'' equation). 
  58. %  Two commands are supplied which enable the user to write
  59. %  commnetary tests in |eqnarray|-like environments without
  60. %  interfering with the alignment. 
  61. %  \section{History}
  62. %  |deleq.sty| was originally written for \LaTeX{} 2.09,
  63. %  and contained several commands which became obsolete
  64. %  with the introduction of \LaTeXe.  These commands have
  65. %  been removed.  The previous release (v.4.0, Oct.~14,
  66. %  1994) was the first for \LaTeXe. The present release 
  67. %  (v.4.1) is the first which is compatible with the 
  68. %  |docstrip| utility of Johannes Braams, Denys Duchier and 
  69. %  Frank Mittelbach.
  70. %  |deleq.sty| version 4.0 has been tested with \LaTeXe%  
  71. %  /\TeX{} 3.141 under UNIX and \LaTeXe /\TeX{} 3.1415 under
  72. %  OpenVMS.  Version 4.1 has only been tested on the 
  73. %  OpenVMS platform.  Please send bug reports (see below),
  74. %  corrections, additions, suggestions, \textit{etc.}\ to
  75. %  me at \texttt{matsd@physchem.kth.se}.  (Command names
  76. %  are a mixture of \LaTeX , Swedish and a bit of the
  77. %  author's fantasy$\ldots$) With |deleq| v.4.1, the 
  78. %  commentatory commands |\where| and |\rem| were included.
  79. %  \section{Known Problems}
  80. %  \begin{itemize}
  81. %  \item  Earlier versions (3.0) of |deleq.sty| had
  82. %    problems with \LaTeXe   compatibility mode (reported by
  83. %    Tom Scavo   (\texttt{trscavo@mailbox.syr.edu})).  These
  84. %    problems are likely to remain.   There are also problems
  85. %    with the font selections when using older   versions of
  86. %    |deleq| than 4.0 in \LaTeXe{} native mode.  These error 
  87. %    messages can be ignored, \LaTeXe{} will produce the
  88. %    correct output   anyway.  There will not be any attempts
  89. %    to correct this by the author   of |deleq| in the near
  90. %    future. 
  91. %  \item In \LaTeX{} 2.09, the use of |deleq.sty| version
  92. %    3.0 sometimes caused the   |\em| command not to work
  93. %    properly in a theorem-like environment   (reported by
  94. %    Patrick Dan\`es (\texttt{danes@laas.fr})).  This appears
  95. %    not to be   a problem in \LaTeXe{} with |deleq| version
  96. %    4.0 and later. 
  97. %  \end{itemize}
  98. %  \section{``Userguide''}
  99. %  \subsection{Requirements}     
  100. %  The file |deleq.sty| must be available in the user's
  101. %  |TEXINPUTS| directories.
  102. %  It requires \LaTeXe{} of 1994/06/01 (or newer).
  103. %  \subsection{Usage}
  104. %  The package is included by stating\\
  105. %  |  \usepackage{|$\ldots$|,deleq,|$\ldots$|}| \\
  106. %  In the document preamble.
  107. %  The documentclass option |leqno| is fully supported,
  108. %  no other class or package options have any effect on 
  109. %  |deleq|.
  110. %  \subsection{Environments}     
  111. %  The package defines the following four environments:
  112. %  \begin{description}
  113. %  \item{\texttt{deqn}} environment for automatic numbering of 
  114. %    the  first equation of type 3a; 
  115. %  \item{\texttt{ddeqn}} used for automatic numbering of the
  116. %    equations following the one in |deqn|, see also details
  117. %    below; 
  118. %  \item{\texttt{deqarr}} environment for automatic partial equation
  119. %    numbering used in |eqnarray| environment with 
  120. %    |deqn| functionality for the first equation;
  121. %  \item{\texttt{ddeqar}} similar to |deqarr| environment, but 
  122. %    with |ddeqn| behaviour for the first equation, see details below.
  123. %  \end{description}
  124. %  \subsection{Commands}         
  125. %  The package defines the following nine user commands:\\
  126. %  \hspace*{2mm}|\nydeqno|\\
  127. %  \hspace*{2mm}|\heqno|\\
  128. %  \hspace*{2mm}|\nydeleqno|\\
  129. %  \hspace*{2mm}|\deleqno|\\
  130. %  \hspace*{2mm}|\reqno{FOO}|\\
  131. %  \hspace*{2mm}|\rndeqno{FOO}|\\
  132. %  \hspace*{2mm}|\rdeqno{FOO}|\\
  133. %  \hspace*{2mm}|\where|\\
  134. %  \hspace*{2mm}|\rem{|\textit{text}|}|\\
  135. %  \subsection{Notice}
  136. %  \begin{enumerate}
  137. %  \item If you use |\nydeleqno|, |\deleqno|, |\nydeqno|, 
  138. %  |\heqno|, |\reqno|, |\rndeqno|, or |\rdeqno| in 
  139. %  combination with |\label{FOO}|, |\label{FOO}| should
  140. %  appear after the |deleq|-command;
  141. %  \item If you change the appearance of equation numbers 
  142. %  (\textit{e.g.}\ use
  143. %  `[2]' instead of `(2)'),  |deleq|'s commands may not typeset
  144. %  the partial equation numbers like your ordinary ones.
  145. %  \end{enumerate}       
  146. %  \section{Syntax}
  147. %  Here follows a more detailed description of the
  148. %  different environments and commands. \\[1em]
  149. %  \noindent|\begin{deqn} ... \end{deqn}|\\    
  150. %  Typesets an equation just like 
  151. %  |\begin{equation} ... \end{equation}| does, but gives it
  152. %  a number such as `3a' instead of `3' (always `a'). \\[1em]
  153. %  \noindent|\begin{ddeqn} ... \end{ddeqn}|\\    
  154. %  Typesets an equation just like 
  155. %  |\begin{equation} ... \end{equation}| does, but gives it
  156. %  a number such as `3b', `3c', $\ldots$ instead of `3',
  157. %  `4', $\ldots$ when following after another partially
  158. %  numbered equation.  When following after an ordinarily
  159. %  numbered equation (`3') it gives a partial equation
  160. %  number with the last used ordinary equation number,
  161. %  \textit{e.g.}\  `3a'.  Can be made to produce the result
  162. %  of |deqn| environment by the use of |\nydeqno| (see 
  163. %  below). \\[1em]
  164. %  \noindent|\begin{deqarr} ... \end{deqarr}|\\    
  165. %  Typesets an equation array just like 
  166. %  |\begin{eqnarray} ... \end{eqnarray}| does, but gives
  167. %  the first numbered equation a number like `3a' instead
  168. %  of `3' (always `a'), and the following `3b', `3c'
  169. %  \textit{etc.}  The |\nonumber| command works just like
  170. %  in the |eqnarray| environment. \\[1em]
  171. %  \noindent|\begin{ddeqar} ... \end{ddeqar}|\\    
  172. %  Typesets an equation array just like 
  173. %  |\begin{eqnarray} ... \end{eqnarray}| does, but gives
  174. %  the equation numbers such as `3a' if following after an
  175. %  equation numbered `3' (ordinary equation number) and
  176. %  numbers such as `3c' if following after a partially
  177. %  numbered equation `3b'. Can be made to produce the
  178. %  result of |deqarr| environment by the use of |\nydeqno|.
  179. %  The |\nonumber| command works just like in the
  180. %  |eqnarray| environment. \\[1em]
  181. %  \noindent|\nydeqno|\\
  182. %  Used within |deqarr| and |ddeqar| environments to
  183. %  step the main equation number by one and reset the 
  184. %  partial equation number to `a'; thus, |\nydeqno| gives 
  185. %  equation number `4a' when following after equation `3c'.\\[1em]
  186. %  \noindent|\heqno|\\
  187. %  Used within |deqarr| and |ddeqar| 
  188. %  environments to step the main equation number by one and  
  189. %  to produce an ordinary equation number; thus, gives 
  190. %  equation number `4' when following equation `3c'. 
  191. %  Equations following the |\heqno|-ed will be partially  
  192. %  numbered with the |\heqno|-ed equation's number as the
  193. %  main number, \textit{e.g.}\  `4a' (unless it has a |\nydeqno| 
  194. %  command, which in this case would produce the equation 
  195. %  number `5a').\\[1em]
  196. %  \noindent|\nydeleqno|\\
  197. %  Gives a new partial equation number when used within |$$ ... $$|.
  198. %  Thus, writing |$$ ...| |\nydeleqno $$| is equivalent to 
  199. %  writing |\begin{deqn} ... \end{deqn}|.\\[1em]
  200. %  \noindent|\deleqno|\\
  201. %  Gives a partial equation number when used within |$$ ... $$|.
  202. %  Thus, writing |$$ ... \deleqno $$| is equivalent to 
  203. %  writing |\begin{ddeqn} ... \end{ddeqn}|. \\[1em]
  204. %  \noindent|\reqno{FOO}|\\
  205. %  Is used when repeating equations with its original number.
  206. %  |\reqno| takes the argument |FOO|, which has to be defined
  207. %  by a |\label{FOO}| in the original equation.  It can
  208. %  only be used within |$$ ... $$|.  It does not affect the 
  209. %  equation number counter, nor the partial equation number 
  210. %  counter.  However, it resets the partial equation number
  211. %  counter for the |\rndeqno| and |\rdeqno| 
  212. %  commands.  If used with a |\label{FOOO}| 
  213. %  command, the |.aux|-file will only contain the page number 
  214. %  of label |FOOO|. \\[1em]
  215. %  \noindent|\rndeqno{FOO}|\\
  216. %  Adds a partial equation number to an old equation number,
  217. %  specified by the |FOO| label.  If |FOO| refers to equation 
  218. %  `4', |\rdeqno{FOO}| will result in equation number `4a'
  219. %  (always `a').  It can only be used within 
  220. %  |$$ ... $$|.  It does not affect the equation number counter,
  221. %  nor the partial equation number counter.  However, it
  222. %  resets the partial equation number counter for the 
  223. %  |\rndeqno| and  |\rdeqno| commands.
  224. %  The argument of |\rndeqno| follows the same rules as that of
  225. %  |\reqno|.  When used with the |\label{FOOO}| command, a
  226. %  reference to |FOOO| will only return the partial equation
  227. %  number (and the page number).  To make a complete reference 
  228. %  to an equation which has a |\rndeqno| command, say 
  229. %  |\ref{FOO}\ref{FOOO}|. \\[1em]
  230. %  \noindent|\rdeqno{FOO}|\\
  231. %  Same as |\rndeqno{FOO}| but without resetting any 
  232. %  equation number counter and giving consecutive partial
  233. %  equation numbers (`4b', `4c', \textit{etc.}).
  234. %  \textbf{Note: } There is nothing preventing the
  235. %  repeated use of |\rndeqno{FOO}| and |\rdeqno{FOO}| for
  236. %  the same label |FOO|.  This will result in numbering such
  237. %  as `3a' (if |FOO| refers to equation `3') occuring several
  238. %  times. \\[1em]
  239. %  \noindent|\where|\\
  240. %  The command |\where| typsets the text ``where'' (in 
  241. %  the default LR-font) flush left on a seperate row in 
  242. %  |eqnarray|, |deqarr|, and |ddeqar| environments, and 
  243. %  preserves the environment's alignment for rows to come. \\[1em]
  244. %  \noindent|\rem{|\textit{text}|}|\\
  245. %  The command |\rem{|\textit{text}|}| typsets the text
  246. %  ``\textit{text}'' (in the default LR-font) flush left on
  247. %  a seperate row in |eqnarray|, |deqarr|, and |ddeqar|
  248. %  environments, and preserves the environment's alignment
  249. %  for rows to come.  |\where| is equivalent to 
  250. %  |\rem{where}|. \\[1em]
  251. %  \noindent|\mthref{FOO}|\\
  252. %  This is not intended as a user command, but is
  253. %  avaliable.  It is the same as ordinary |\ref{FOO}| but
  254. %  does not type-set the `??' in |\bfseries| font if
  255. %  occurring within mathmode. |deleq| makes use of this to
  256. %  avoid interruptions when \LaTeX -ing documents
  257. %  containing |\reqno|, |\rndeqno|, or |\rdeqno| with
  258. %  undefined references.  It can be used also outside
  259. %  mathmode, and behaves then just like |\ref{FOO}|. 
  260. %  Warnings are the same as when using |\ref{FOO}|. 
  261. %  \section{Example}
  262. %  After running \LaTeX{} on |deleq.ins|, there is an 
  263. %  example avaliable in the file |delex.tex|, 
  264. %  which makes use of all the environments and commands 
  265. %  defined in the |deleq| package.  Typset it and see with 
  266. %  your own eyes what the results are!
  267. %  \section{Sending a Bug Report}
  268. %  |deleq| is most likely to contain bugs.
  269. %  Reports of bugs in the package are most welcome.  
  270. %  Before filing a bug report,
  271. %  please take the following actions:
  272. %  \begin{enumerate}
  273. %  \item Ensure your problem is not due to your inputfile;
  274. %  \item Ensure your problem is not due to 
  275. %     your own package(s) or class(es);
  276. %  \item Ensure your problem is not covered in the section 
  277. %     ''Known Problems'' above;
  278. %  \item  Try to locate the problem by writing a minimal 
  279. %     \LaTeX{} input file which reproduces the problem.  
  280. %     Include the command\\ 
  281. %     |  \setcounter{errorcontextlines}{999}|\\ 
  282. %     in your input;
  283. %  \item Run your file through \LaTeX ;
  284. %  \item Send a description of your problem, the input file 
  285. %     and the log file via e-mail to:\\
  286. %     \hspace*{5mm} \texttt{matsd@physchem.kth.se}.
  287. %  \end{enumerate}
  288. %  {\itshape Enjoy your \LaTeX!\raisebox{-\baselineskip}{mats d.}}
  289. %  \section{The Code} 
  290. %  For the interested reader(s), here is a short description 
  291. %  of the code. \par
  292. % \iffalse
  293. %<*paketkod>
  294. % Part 1: Identification etc.
  295. % \fi
  296. %  First, the package is to identify itself.
  297. %    \begin{macrocode} 
  298. \NeedsTeXFormat{LaTeX2e}[1994/06/01]
  299. \ProvidesPackage{deleq}[1994/12/27 v.4.1 Partial equation numbering]
  300. \typeout{deleq.sty included, version 4.1 (Dec. 27, 1994).  (c) 1994 by Mats Dahlgren}
  301. \def\deleqver{\texttt{deleq} version 4.1 (Dec.~27, 1994)}
  302. %    \end{macrocode}
  303. % \iffalse
  304. % Part 2: Counters and internal commands, etc.
  305. % \fi
  306. %  \par  Then, we need to define the counters used for the partial 
  307. %  part of the equation number.  The counter |Deleq| is used for 
  308. %  ``recycled'' equation numbers, hence no dependence on any other 
  309. %  counter.  Also the lettering of the counters are to be defined.
  310. %    \begin{macrocode}
  311. \newcounter{deleq}[equation]
  312. \newcounter{Deleq}
  313. \newcount\@deqpen
  314. \newcount\@deqcnt
  315. \renewcommand{\thedeleq}{\ensuremath{\theequation\mathrm{\aLph{deleq}}}}
  316. \renewcommand{\theDeleq}{\ensuremath{\mathrm{\aLph{Deleq}}}}
  317. \def\@deleqnnum{(\thedeleq)}
  318. \def\aLph#1{\@aLph{\@nameuse{c@#1}}}
  319. \def\@aLph#1{\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
  320.    k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
  321.    z\else\@ctrerr\fi}
  322. %    \end{macrocode}
  323. %  The parts making up the |\\| command in the multiline environments 
  324. %  are extremely similar to those used by the standard environments:
  325. %    \begin{macrocode}
  326. \def\@deqncr{{\ifnum0=`}\fi\@ifstar{\global\@deqpen\@M
  327.     \@ydeqncr}{\global\@deqpen\interdisplaylinepenalty \@ydeqncr}} 
  328. \def\@ydeqncr{\@ifnextchar [{\@xdeqncr}{\@xdeqncr[\z@]}} 
  329. \def\@xdeqncr[#1]{\ifnum0=`{\fi}\@@deqncr
  330.    \noalign{\penalty\@deqpen\vskip\jot\vskip #1\relax}}
  331. \def\@@deqncr{\let\@tempa\relax
  332.     \ifcase\@deqcnt \def\@tempa{& & &}\or \def\@tempa{& &}%
  333.       \else \def\@tempa{&}\fi
  334.      \@tempa \if@eqnsw\@deleqnnum\stepcounter{deleq}\fi
  335.      \global\@eqnswtrue\global\@deqcnt\z@\cr}  
  336. %    \end{macrocode}
  337. % \iffalse
  338. % Part 3:  Commands:  \nydeleqno, \deleqno, \reqno, \rndeqno, \rdeqno,  
  339. %                     \nydeqno, and \heqno
  340. % \fi
  341. %  \par Here the definitions of the user commands are.
  342. %    \begin{macrocode}
  343. \newcommand{\nydeleqno}{\refstepcounter{equation}\refstepcounter{deleq}
  344.   \let\@currentlabel\thedeleq \eqno (\thedeleq)}
  345. \newcommand{\deleqno}{\refstepcounter{deleq} \let\@currentlabel\thedeleq 
  346.   \eqno (\thedeleq)}
  347. \newcommand{\reqno}[1]{\setcounter{Deleq}{-1}\refstepcounter{Deleq}
  348.    \eqno (\ref{#1}) }
  349. \newcommand{\rdeqno}[1]{\refstepcounter{Deleq}
  350.    \eqno (\ref{#1}\theDeleq)}
  351. \newcommand{\rndeqno}[1]{\setcounter{Deleq}{0}\refstepcounter{Deleq}
  352.    \eqno (\ref{#1}\theDeleq)}
  353. \newcommand{\nydeqno}{\stepcounter{equation}\stepcounter{deleq}}
  354. \newcommand{\heqno}{\stepcounter{equation}}
  355. %    \end{macrocode}
  356. %  And the two commands |\where| and |\rem| follow suit:
  357. %    \begin{macrocode}
  358. \def\where{\let\@tempa\relax \def\@tempa{& & &}
  359.      \@tempa {\hbox to .01\p@{}\rlap{\hskip -\displaywidth where}}\cr}
  360. \def\rem#1{\let\@tempa\relax \def\@tempa{& & &}
  361.      \@tempa {\hbox to .01\p@{}\rlap{\hskip -\displaywidth #1}}\cr}
  362. %    \end{macrocode}
  363. % \iffalse
  364. % Part 4:  Environments: 'deqarr', 'ddeqar', 'deqn', and 'ddeqn'  
  365. % \fi
  366. %  \par The four environments are slight modifications of the 
  367. %  corresponding \LaTeX{} standard environments.  The main difference 
  368. %  lies in which counter(s) is stepped and which internals are used to 
  369. %  finish off the lines.
  370. %    \begin{macrocode}
  371. \newenvironment{deqarr}{\stepcounter{equation}\stepcounter{deleq}
  372.   \let\@currentlabel\thedeleq
  373.   \global\@eqnswtrue\m@th
  374.   \global\@deqcnt\z@\tabskip\@centering\let\\\@deqncr
  375.   $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
  376.   $\displaystyle\tabskip\z@{##}$&\global\@deqcnt\@ne
  377.   \hskip 2\arraycolsep \hfil${##}$\hfil
  378.   &\global\@deqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil
  379.    \tabskip\@centering&\llap{##}\tabskip\z@\cr}
  380. {\@@deqncr\egroup
  381.       \global\advance\c@deleq\m@ne$$\global\@ignoretrue}
  382. \newenvironment{ddeqar}{\stepcounter{deleq}
  383.   \let\@currentlabel\thedeleq
  384.   \global\@eqnswtrue\m@th
  385.   \global\@deqcnt\z@\tabskip\@centering\let\\\@deqncr
  386.   $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
  387.   $\displaystyle\tabskip\z@{##}$&\global\@deqcnt\@ne
  388.   \hskip 2\arraycolsep \hfil${##}$\hfil
  389.   &\global\@deqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil
  390.    \tabskip\@centering&\llap{##}\tabskip\z@\cr} 
  391. {\enddeqarr}
  392. \newenvironment{deqn}{$$\refstepcounter{equation}\stepcounter{deleq} 
  393.    \let\@currentlabel\thedeleq}
  394.   {\eqno \hbox{\@deleqnnum} $$\global\@ignoretrue}
  395. \newenvironment{ddeqn}{$$\refstepcounter{deleq} \let\@currentlabel\thedeleq}
  396.   {\eqno \hbox{\@deleqnnum} $$\global\@ignoretrue}
  397. %    \end{macrocode}
  398. % \iffalse
  399. % Part 5:  'leqno' compatibility
  400. % \fi
  401. %  \par If the user wants the equation numbers to the left, we have to 
  402. %  modify some of the commands and internals defined above.  This is 
  403. %  done in a |\DeclareOption|-call:
  404. %    \begin{macrocode}
  405. \DeclareOption{leqno}{\typeout{`leqno' implementation in progress.}
  406.   \def\@deleqnnum{\hbox to .01\p@{}\rlap{\reset@font\rmfamily
  407.         \hskip -\displaywidth(\thedeleq)}}
  408. \renewcommand{\nydeleqno}{\refstepcounter{equation}\refstepcounter{deleq}
  409.   \let\@currentlabel\thedeleq \leqno (\thedeleq)}
  410. \renewcommand{\deleqno}{\refstepcounter{deleq} \let\@currentlabel\thedeleq 
  411.   \leqno (\thedeleq)}
  412. \renewcommand{\reqno}[1]{\setcounter{Deleq}{-1}\refstepcounter{Deleq}
  413.    \leqno (\ref{##1}) }
  414. \renewcommand{\rdeqno}[1]{\refstepcounter{Deleq}
  415.    \leqno (\ref{##1}\theDeleq)}
  416. \renewcommand{\rndeqno}[1]{\setcounter{Deleq}{0}\refstepcounter{Deleq}
  417.    \leqno (\ref{##1}\theDeleq)}
  418. %    \end{macrocode}
  419. %  If other options were asked for, the package should inform the user 
  420. %  that this has no effect on |deleq|.  Then, last, the option(s) 
  421. %  is (are) processed.
  422. %    \begin{macrocode}
  423. \DeclareOption*{\typeout{`\CurrentOption '\space has no effect on deleq.}%
  424.   \OptionNotUsed}
  425. \ProcessOptions
  426. %    \end{macrocode}
  427. % \iffalse
  428. % END of it all!
  429. %</paketkod>
  430. %<*driver>
  431. \documentclass[a4paper]{article}
  432. \usepackage{doc}
  433. \textwidth=150mm
  434. \textheight=210mm
  435. \topmargin=0mm
  436. \oddsidemargin=5mm
  437. \evensidemargin=5mm
  438. \begin{document}
  439.   \DocInput{deleq.dtx} 
  440.   \PrintChanges
  441. \end{document}
  442. %</driver>
  443. %<*exempelkod>
  444. \documentclass[11pt]{article} %%% add `leqno' if you want left-aligned
  445. \usepackage{deleq}            %%%                    equation numbers.
  446. \oddsidemargin=0.5cm
  447. \evensidemargin=0.5cm
  448. \topmargin=-5mm           
  449. \textheight=23.5cm
  450. \textwidth=15.5cm
  451. \begin{document}
  452.   \begin{center}
  453.   \Large Welcome to the \texttt{deleq} package!
  454.   \end{center}
  455.   This is a short document to demonstrate the use of the 
  456.   \texttt{deleq} package and its commands.  It uses \deleqver .
  457.   \texttt{deleq} was written by Mats Dahlgren
  458.   (\texttt{matsd@physchem.kth.se}).  Suggestions for
  459.   improvements and bug reports are most welcome, see the 
  460.   documentation.  \texttt{deleq} is fully compatible with the
  461.   \texttt{leqno} option. 
  462.   We start this demonstration by a simple and well-known
  463.   equation to get the equation number counter going: 
  464.   \begin{equation}  
  465.     \sin^2\alpha + \cos^2\alpha = 1  
  466.   \end{equation}
  467.   The first example will be to make use of the
  468.   \texttt{deqn} environment to get a partially numbered
  469.   equation: 
  470.   \begin{deqn}  
  471.     \sin (-\alpha) = - \sin \alpha  
  472.   \end{deqn}
  473.   This equation has its cosine companion, here written in
  474.   the \texttt{ddeqn} environment: 
  475.   \begin{ddeqn}  
  476.     \cos (-\alpha) = \cos \alpha  
  477.   \end{ddeqn}
  478.   Not so exciting, so far. :--)
  479.   In the next example we introduce the \texttt{deqarr}
  480.   environment for writing equations: 
  481.   \begin{deqarr}
  482.     \sin ( \alpha + \beta ) & = 
  483.       & \sin \alpha \cos \beta + \sin \beta \cos \alpha \\
  484.     \sin ( \alpha - \beta ) & = 
  485.       & \sin \alpha \cos \beta - \sin \beta \cos \alpha 
  486.     \label{Demo1}
  487.   \end{deqarr}
  488.   where we also have put in the label \texttt{Demo1} in
  489.   the second equation. Next, notice how the environment
  490.   \texttt{ddeqar} uses the same main equation number as
  491.   the previous equations: 
  492.   \begin{ddeqar}
  493.     \cos ( \alpha + \beta ) & = 
  494.       & \cos \alpha \cos \beta - \sin \alpha \sin \beta \\
  495.     \cos ( \alpha - \beta ) & = 
  496.       & \cos \alpha \cos \beta + \sin \alpha \sin \beta 
  497.   \end{ddeqar}
  498.   Now, we will make another \texttt{eqnarray}-like
  499.   structure, again in the \texttt{ddeqar} environment: 
  500.   \begin{ddeqar}
  501.     \sin 2\alpha & = 
  502.       & 2 \sin \alpha \cos \alpha \heqno \label{Demo2} \\
  503.     \cos 2\alpha & = 
  504.       & \cos ^2 \alpha - \sin ^2 \alpha \nydeqno \\
  505.   \rem{or}
  506.       & = & 2\cos ^2 \alpha - 1 
  507.   \end{ddeqar}
  508.   This example shows the use of \verb$\heqno$ in the first
  509.   equation, which produces an ordinary equation number. 
  510.   The first equation is also labelled, with the label
  511.   \texttt{Demo2}.  The next equation's number was produced
  512.   by the command \verb$\nydeqno$.  Also, notice the use of
  513.   \verb+\rem{or}+, which results in the text ``or'' without
  514.   changing the alignment.
  515.   To step the equation number counter, we want the
  516.   following equations typeset in ordinary
  517.   \texttt{eqnarray} environment: 
  518.   \begin{eqnarray}
  519.     \tan ^2 \alpha & = 
  520.       & \frac{\sin ^2 \alpha}{\cos ^2 \alpha} \label{Demo3} \\
  521.     \tan \alpha & = 
  522.       & \frac{\sin \alpha}{\cos \alpha} 
  523.   \end{eqnarray}
  524.   The upper equation was given the label \texttt{Demo3}.
  525.   Now one of the ``recycling'' commands is to be
  526.   demonstrated.  First of all, let's make an ordinary
  527.   reference to equation~\ref{Demo2}, and then ``recycle'' it: 
  528.   $$ \sin 2\alpha = 2 \sin \alpha \cos \alpha \reqno{Demo2} $$
  529.   This was obtained with \verb#$$ ... $$# with the command
  530.   \verb#\reqno{Demo2}# at the end.  Also partially
  531.   numbered equations can be recycled with the
  532.   \verb#\reqno{FOO}# command, as with
  533.   equation~\ref{Demo1}: 
  534.   $$ \sin ( \alpha - \beta ) = \sin \alpha \cos \beta - 
  535.     \sin \beta \cos \alpha \reqno{Demo1} $$
  536.   (However, the use of \verb#\rndeqno{FOO}# and
  537.   \verb#\rdeqno{FOO}# will produce strange results with
  538.   two (different) partial equation numbers if \texttt{FOO}
  539.   refers to a partially numbered equation.) 
  540.   The next equation was written with \verb#$$ ... $$# and
  541.   a \verb#\deleqno# command at the end: 
  542.   $$ \tan 2\alpha = \frac{2\tan \alpha}{1 - \tan ^2 \alpha} \deleqno $$
  543.   Notice how the main equation number counter is still the
  544.   same, despite that we now are outside of the
  545.   \texttt{ddeqar} environment. Also, notice how the use of
  546.   \verb#\reqno# above did not affect the equation number
  547.   counter. The following equation is also set within
  548.   \verb#$$ ... $$#, but it uses the command
  549.   \verb#\nydeleqno# to produce an equation number with a
  550.   new main number: 
  551.   $$ \sin ^2 \alpha = 1 - \cos ^2 \alpha \nydeleqno $$
  552.   Now we will elaborate a little on \verb#\rndeqno{FOO}#
  553.   and \verb#\rdeqno{FOO}#. Let us use
  554.   equation~\ref{Demo3}, and see what happens if we use the
  555.   \verb#\rndeqno{FOO}# command: 
  556.   $$ \tan ^2 \alpha = \frac{\sin ^2 \alpha}
  557.     {\cos ^2 \alpha} \rndeqno{Demo3} $$
  558.   which we rewrite:
  559.   $$ \tan ^2 \alpha = \frac{\sin ^2 \alpha}
  560.     {1 - \sin ^2 \alpha} \rdeqno{Demo3}  \label{Demo4} $$
  561.   with \verb#\rdeqno{Demo3}# at the end.  This is great
  562.   fun, so why not one more: 
  563.   $$ \tan ^2 \alpha = \frac{1 - \cos ^2 \alpha}
  564.     {\cos ^2 \alpha} \rdeqno{Demo3} $$ 
  565.   Also, the middle form of equation~\ref{Demo3} got a
  566.   label, \texttt{Demo4}. 
  567.   There is still one equation to write.  This time we
  568.   again use the \texttt{deqarr} environment: 
  569.   \begin{deqarr}
  570.   \cot \alpha & = & \frac{\cos \alpha}{\sin \alpha} \\
  571.   \where
  572.     & = & \frac{1}{\tan \alpha}
  573.   \end{deqarr}
  574.   This example also shows the use of the \verb+\where+ 
  575.   command, which is a special case of the \verb+\rem+ command.
  576.   Now, the interesting thing of referring to the recycled
  577.   equations is ahead. If one writes \verb#\ref{Demo4}#,
  578.   this is what \LaTeX\ will return:~\ref{Demo4}.  That is
  579.   not too instructive, since the partial equation numbers
  580.   are quite common in this document.  To make the complete
  581.   reference, use \verb#\ref{Demo3}\ref{Demo4}#.  The
  582.   reference~\ref{Demo3}\ref{Demo4} is much more
  583.   comprehensible, right? (If you get bad line-breaks at
  584.   such references, put them in an \verb#\mbox{...}#.) 
  585.   Finally, the $\mathcal{END}$!  If you want your
  586.   equations left-aligned, just specify the \texttt{leqno}
  587.   option for the \texttt{documentclass} you are using.  It
  588.   should work!  If you have any suggestions, corrections
  589.   or contributions, please contact me. Enjoy \LaTeX ! 
  590.   {\itshape mats d.}
  591. \end{document}
  592. %</exempelkod>  
  593. % \fi
  594. % \Finale
  595. \endinput 
  596.